Automated systems, such as package conveyor systems and car manufacturing systems, have been a central force in transforming manual work environments into electronic device supported environments. Such automated systems typically utilize large machinery and/or are situated in warehouses or factories where harsh conditions exist. For this and other reasons, programmable logic controllers (PLCs) are utilized to control the electronic devices and machinery on a factory assembly line or in a package distribution center, for example.
A PLC is designed for multiple input/output (I/O) arrangements that connect the PLC to sensors and actuators. As inputs, PLCs read limit switches, analog process variables, e.g., such as temperature and pressure, and the positions of complex positioning systems. On the actuator side, PLCs control electric motors, pneumatic or hydraulic cylinders, magnetic relays, solenoids, or analog outputs. The I/O arrangements may be built into a simple PLC, or the PLC may access external I/O modules through a shared computer network. Typically, this network is in the form of a proprietary backplane, where each module can be mounted into one of many available slots in an enclosed rack.
PLCs are programmable to execute control instructions based on sensor inputs. Control instructions used with most PLCs are written in a language format referred to as “ladder logic.” Ladder logic is a rule-based language format that represents a program by a graphical diagram based on the circuit diagrams of relay-based logic hardware. The language format derives its name from the ladder-like resemblance of the graphical diagram, with two vertical rails and a series of horizontal rungs between them. Each rung in the ladder represents a rule. When implemented in a PLC, the rules are typically executed sequentially, in a continuous loop.
Some PLCs are programmed using proprietary programming panels or special-purpose programming terminals, which often have dedicated function keys representing the various logical elements of PLC programs. Most PLCs are programmed using proprietary software written for use on desktop computers, and for connecting between the desktop computer and the PLC. Such proprietary software typically allows entry of the ladder style logic of the control instructions, and then may provide additional functionality to assist debugging and troubleshooting the control instructions during installation. The proprietary software typically allows uploading and downloading of the control instructions between the computer and the PLC, for backup and restoration purposes. Alternatively, programming boards can be used to hard wire the logic into the PLC by the use of a removable chip, e.g., an EEPROM, where the control instructions are transferred to the programming board from a workstation via serial or other bus logic.
Once the control instructions are installed in the PLC, and tested against the devices at a customer site, the automated system is ready and production begins. The control instructions are embedded in the PLC, which dutifully and reliably performs its function in a closed “black box” environment.
While using a PLC to control an automated system is advantageous because the PLC is sturdy and reliable, it also presents serious challenges when production conditions change and adjustments or changes to the control instructions are necessary. When the PLC's control instructions need to be adjusted to respond, for example, to an unforeseen problem, all that exists is the rungs and coils of the ladder logic program. Typically, the programmer who originally programmed the ladder logic is no longer available and the control instructions are essentially static.